package com.googlecode.placesapiclient.client.entity;

import java.util.Date;
import java.util.HashMap;
import java.util.Map;

/**
 * If a language parameter was specified in the Place Details request, the Places Service will bias the results to prefer reviews written in that language.
 *
 * Properties description from https://developers.google.com/places/documentation/details#PlaceDetailsResults
 *
 */
public class Review {

    public static final String RATING_TYPE_QUALITY = "quality";

    public Review() {
        aspectRatingMap  = new HashMap<String, Double>();
    }
    /**
     * Contains a collection of AspectRating objects, each of which provides a rating of a single attribute of the establishment.
     * The first object in the collection is considered the primary aspect. Each AspectRating is described as:
     * type the name of the aspect that is being rated. eg. atmosphere, service, food, overall, etc.
     * rating the user's rating for this particular aspect, from 0 to 3.
     */
    private Map<String, Double> aspectRatingMap;
    /**
     * The name of the user who submitted the review. Anonymous reviews are attributed to "A Google user"
     */
    private String authorName;
    /**
     * The URL to the users Google+ profile, if available.
     */
    private String authorUrl;
    /**
     * Contains the user's review. When reviewing a location with Google Places, text reviews are considered optional; therefore, this field may by empty.
     */
    private String text;
    /**
     * Date and time that the review was submitted.
     */
    private Date time;


    public Map<String, Double> getAspectRatingMap() {
        return aspectRatingMap;
    }

    public String getAuthorName() {
        return authorName;
    }

    public void setAuthorName(String authorName) {
        this.authorName = authorName;
    }

    public String getAuthorUrl() {
        return authorUrl;
    }

    public void setAuthorUrl(String authorUrl) {
        this.authorUrl = authorUrl;
    }

    public Date getTime() {
        return time;
    }

    public void setTime(Date time) {
        this.time = time;
    }

    public String getText() {
        return text;
    }

    public void setText(String text) {
        this.text = text;
    }
}
